package esercitazione4.BTree;

/**
 * 
 * Interfaccia generica per un BTree
 *
 * @param <K>
 * @param <V>
 */
public interface BTreeInterface<K extends Comparable<K>, V> {
	/**
	 * Ritorna il valore di una Entry
	 * @param key Chiave della entry di cui si vuole il valore
	 * @throws NoKeyFoundException
	 */
	public V get(K key) throws NoKeyFoundException;
	
	/** Aggiunge una entry all'interno dell'albero
	 * @param key Chiave della entry da inserire
	 * @param value Valore della entry da inserire
	 * @throws KeyDuplicateException
	 */
	public void add(K key, V value) throws KeyDuplicateException;
	
	/**
	 * Cancella una entry
	 * @param key Chiave della entry da cancellare
	 * @throws NoKeyFoundException
	 * @throws TreeEmptyException
	 */
	public boolean delete(K key) throws NoKeyFoundException, TreeEmptyException;
}
